Skip to content

基于站点的开关

fang5566 edited this page Jul 12, 2023 · 37 revisions

返回“快速指南:弹出界面”


你可以使用基于站点的开关来控制 uBlock Origin(uBO) 在每个站点上的行为。

弹出界面

点击基于站点开关所做的更改是临时生效的,直到你点击挂锁图标将其变成永久生效。点击开关时按住 Ctrl(Mac 是Cmd)键会将其立即变成永久生效。

橡皮擦和挂锁
橡皮擦和挂锁图标



禁止弹出窗口

默认情况下弹出窗口是允许显示的,除非有相应的过滤规则屏蔽。但如果开启该选项,不管规则如何,当前站点的所有弹出窗口都会被屏蔽:

弹出界面
图标角标显示的是网页中被关闭的弹窗数量。

自定义动态规则 版块 里可以看到 no-popups: [hostname] true 形式的禁止弹出窗口规则。

能否屏蔽弹出窗口取决于所选过滤规则列表是否包含相应的规则,所以这项功能特别适合第三方规则列表没有相应规则对付网站弹出窗口的情况。

请注意: uBlock Origin 无法始终辨别出新建的标签页是弹出窗口还是来自用户正常的链接点击。所以一旦使用了这个开关禁止弹出窗口,你 可能 无法通过右键菜单在新标签页里打开链接。

在移动设备中,由于屏幕空间问题,“禁止弹出窗口”的图标无法直接使用。如果你仍有需要,可以在高级设置里重新开启。


禁止大型媒体元素

第二个图标是启用/禁用屏蔽当前站点大型媒体元素的功能。该功能主要目的是节省网络带宽,其次是提高可能的网页载入速度。

弹出界面
图标角标显示的是网页中被屏蔽的大型媒体元素的数量。

默认情况下此选项处于禁用状态。你可以到控制面板设置 版块打开默认全局启用的开关。

a

对媒体元素超过特定大小后是否屏蔽的这个门限值是可以配置的,它是一个全局屏蔽的值。你可以将值设置为 0,这表示屏蔽所有媒体元素。在本文档里我们将超过该大小值的媒体元素(图像、视频、音频)称为 “大型媒体元素 ”

你可以基于站点启用和禁用这项功能,即针对当前站点点击弹出界面里的对应开关。

在网页的大型媒体元素被屏蔽以后,你可以交互式地手动重新载入这些元素:如果你将鼠标悬停在被屏蔽图像的占位符并且鼠标变成一个放大镜,点击后可以重新载入该图像。

一旦有大型媒体元素被屏蔽,在网页的右键菜单会添加一个 “临时允许大型媒体元素 ” 的新菜单项。点击后 uBO 会临时禁止屏蔽当前站点的大型媒体元素,并尝试在不重新载入整个网页的情况下加载这些被屏蔽的媒体元素。但在某些情况下你可能需要手动重新载入页面,例如这些大型媒体元素是在通过网页动态获取的。一旦你打开一个新站点或是关闭标签页,临时禁止屏蔽功能就会取消。

屏蔽大型媒体元素会显示在记录台里,你可以看到这条规则:no-large-media: [scope] true

请注意这项功能在保护隐私方面没有什么价值:到远端服务器的连接必须先建立以后才可以获取资源的大小。能获取的资源当然也仅仅是没有被 uBO 过滤引擎屏蔽的资源。

下面是屏蔽大型媒体元素的好处(比如说你偶然打开这些网页,但不知道这些网页是否会引起你的兴趣),统计的是所消耗的带宽:

提醒:

如果媒体元素不包含 Content-Length 头部,则该开关无法根据媒体元素大小进行屏蔽。


禁止修饰规则生效

uBO 里的“修饰过滤”类似于 Adblock Plus(ABP)的“元素隐藏”,目的是隐藏那些无法被网络规则屏蔽的网页内容。

你可以很方便地允许或禁止修饰规则在特定的站点生效:

弹出界面
图标角标显示的是网页中被隐藏的 DOM 元素数量。

该特性生效时,图标旁边的数字表示被 uBO 修饰规则隐藏的元素数量。如果网页有被隐藏的元素,那么一旦你禁用修饰规则,这些元素就会立即显示,一旦启用立即隐藏。

一个有用的例子是隐藏 Google 搜索结果页面的广告([例如]((https://www.google.com/search?q=buy+car))。

修饰规则默认处于启用状态。


提示

通常建议添加 @@||example.com^$elemhide@@||example.com^$generichide 这样的自定义静态过滤规则来阻止特点站点检测是否存在"广告屏蔽"(例如这里,或这里)。 你也可以点击该开关禁止修饰规则在这些站点生效来达到同样的目的。

该特性可帮助 uBO 进一步降低 CPU 占用,改善它在 CPU 性能受限的设备上的表现,有助于延长电池寿命,提高网页加载速度。我的想法是默认在所有网站均禁止修饰规则生效,然后仅在确有必要的网站上启用。


假如你要默认完全禁用修饰规则,你可以打开控制面板设置 版块,并勾选 “默认行为” 下的 “禁用修饰规则” 选项。

默认完全禁用修饰规则

这样你就可以默认完全禁用修饰规则,如果你想在真的有必要的网站上启用,只要点击 uBO 弹出界面对应的开关即可。

该选项启用时,元素选择器不支持选择任意元素来创建修饰规则,只能创建网络规则(例如对于图片)。


禁止远程字体

你可以阻止当前站点下载网页字体:

弹出界面
图标角标显示的是网页中可显示的字体资源数量。

出于安全和隐私方面考虑,许多人选择默认屏蔽所有网页字体 -- 你可以在 in the 控制面板设置 版块 设置想要的默认行为:

默认屏蔽所有网页的远程字体

这样 uBO 就会默认屏蔽任何地方的网页字体,而你又可以根据不同的站点点击这个开关来允许使用网页字体。

但请记住,这条规则会屏蔽所有第一坊和第三方的字体。作为更轻量的选择,你也可以允许第一方字体, 屏蔽第三方字体,例如添加下面这条规则

*$font,third-party

“自定义规则” 版块。如果想针对部分特定的站点允许第三方字体,你可以将上述规则修改为:

*$font,third-party,domain=~example.com|~other.example.net|~different.example.org


禁止脚本生效

1.17.0 版本新增的内容:

完全禁用某站点的 javascript。

弹出界面
角标显示的是页面可见的脚本资源大致数目(受界面布局所限,数目最多显示到 99)

紫色角标
v1.21.7b5 版本开始,uBO 工具栏图标会显示一个紫色角标,表示“禁止脚本生效”开关已打开。

该开关的屏蔽优先级高于和脚本资源有关的动态和静态过滤规则。

在通过该开关禁用 JavaScript 后,网页会尝试性添加一个 noscript 标签(只使用动态或静态规则屏蔽脚本资源则不会)。noscript 标签是通过一个变通的办法激活,而且也有可能存在一种情况,uBO 无法完美模拟已激活的 noscript 标签。

和其他基于站点的开关一样,该开关的默认状态也可以在设置 版块里设定,这样你就可以默认禁用所有站点的 JavaScript 并在特定站点开启:

a

JavaScript 开关所对应的规则语法是 no-scripting: [主机名] true,可在自定义动态规则 版块里看到。

JavaScript 开关可以通过使用 “放宽屏蔽模式” 键盘快捷键禁用。

Clone this wiki locally